package com.ygn.ypicturebackend.exception;

import lombok.Getter;

@Getter
public class BusinessException extends RuntimeException {

    /**
     * 错误码
     */
    private final int code;

    public BusinessException(int code, String message) {
        super(message);
        this.code = code;
    }

    //直接使用 ErrorCode 中定义的默认消息作为异常消息。
    public BusinessException(ErrorCode errorCode) {
        //super(...) 表示调用父类的构造函数
        //errorCode.getMessage() 的作用是获取默认错误消息，传递给父类构造函数作为异常的描述信息。
        //错误码通过 errorCode.getCode() 获取，并存储在BusinessException的code字段中，通过getCode()方法返回。
        super(errorCode.getMessage());
        this.code = errorCode.getCode();
    }

    //覆盖 ErrorCode 的默认消息，使用调用方传入的 message 作为异常消息。
    public BusinessException(ErrorCode errorCode, String message) {
        super(message);
        this.code = errorCode.getCode();
    }

}
